<?php namespace Admin\Controller; 
use Common\Model\Goods;
/*
*商品表控制器
*田昭鹏
*
*/
class GoodsController extends CommonController{
    protected $data;
	//构造函数
	public function __init()
	{
        // 实例化模型
        $this->data=new Goods;
        // 继承父级构造函数
        parent::__init();
	}
    // 商品列表
    public function index(){
        // 分页显示  数据统计
        $allNum=$this->data->where('is_recycle',1)->count();
        // 分页方法
        if($allNum>8){
            $page=Page::row(8)->make($allNum);
            // 分配分页
            View::with('page',$page);
        }
        // 获得数据
        $goodsData=$this->data->limit(Page::limit())->where('is_recycle=1')->get();
        View::with('goodsData',$goodsData);

        View::make();
    }

	// 添加方法
    public function add(){
        // // 判断post
        if(IS_POST){
            // 跳转模型
            $result=$this->data->store();
            // 因为是ajax发送的请求，这里返回数据需要是ajax要求的数据类型
            if(!$result){
            // 返回状态status是否成功
                echo json_encode(array('status'=>FALSE,'message'=>$this->data->getError()));
                die;
            }else{
                echo json_encode(array('status'=>TRUE,'message'=>'添加成功'));
                die;
            }
        }

        // 获得所有分类
        $cateData=Db::table('category')->get();
        $cateData=Data::tree($cateData,'cname');
        View::with('cateData',$cateData);

        // 获得所有品牌
        $brandData=Db::table('brand')->get();
        View::with('brandData',$brandData);

        View::make();
    }



    // 删除到回收站方法
    public function toRecycle(){
        // 获取序号
        $gid=Q('get.gid',0,'intval');
        // 修改数据库
        $result=$this->data->where('gid',$gid)->update(array('is_recycle'=>0));
        if(!$result){
            View::error('删除失败');
        }else{
            View::success('该商品已删除至回收站！');
        }
    }

    // 引入回收站
    public function recycle(){
        // 获取回收站商品
        $goodsData=$this->data->where('is_recycle=0')->get();
        View::with('goodsData',$goodsData);

        View::make();
    }


    // 还原商品
    public function change(){
        // 获取序号
        $gid=Q('get.gid',0,'intval');
        // 修改数据库
        $result=$this->data->where('gid',$gid)->update(array('is_recycle'=>1));
        if(!$result){
            View::error('还原失败');
        }else{
            View::success('还原成功！',U('index'));
        }
    }

    // 彻底删除方法
    public function del(){
        // 获取商品序号
        $gid=Q('get.gid',0,'intval');
        // 删除商品表
        $this->data->where('gid',$gid)->delete();
        // 删除商品详细表
        Db::table('detail')->where('goods_gid',$gid)->delete();
        //删除商品属性表
        Db::table('goods_attr')->where('goods_gid',$gid)->delete();

        View::success('删除成功');
        
    }


    // 编辑方法
    public function edit(){
        // 判断post
        if(IS_POST){
            // 跳转模型添加
            $result=$this->data->edit();
            // 因为是ajax发送的请求，这里返回数据需要是ajax要求的数据类型
            if(!$result){
            // 返回状态status是否成功
                echo json_encode(array('status'=>FALSE,'message'=>$this->data->getError()));
                die;
            }else{
                echo json_encode(array('status'=>TRUE,'message'=>'编辑成功'));
                die;
            }
        }

        // 获取商品序号
        $gid=Q('get.gid',0,'intval');

        // 先删除货品表
        $listData=Db::table('goods_list')->where('goods_gid',$gid)->delete();

        // 获取商品数组
        $goodsData=$this->data->join('detail','gid','=','goods_gid')->where('gid',$gid)->find();
        foreach ($goodsData as $k => $v) {
            if($k=='pic'){
                $goodsData['pic']=explode('|', $goodsData['pic']);
            }
            if($k=='img'){
                $goodsData['img']=explode('|', $goodsData['img']);
            }
        }
        View::with('goodsData',$goodsData);

        // 获取原商品属性
        $typeAttr=Db::table('goods_attr')->join('type_attr','taid','=','type_attr_taid')->where('goods_gid',$gid)->orderBy('gaid','ASC')->get();
        // 重组数组
        foreach ($typeAttr as $k => $v) {
            $typeAttr[$k]['tavalue']=explode('|',$v['tavalue']);
        }
        // var_dump($typeAttr);
        View::with('typeAttr',$typeAttr);

        

        // 获得所有分类
        $cateData=Db::table('category')->get();
        $cateData=Data::tree($cateData,'cname');
        View::with('cateData',$cateData);

        // 获得所有品牌
        $brandData=Db::table('brand')->get();
        View::with('brandData',$brandData);

        View::make();
    }



    // 异步拉取数据
    public function ajaxAttr(){
        if(!IS_AJAX) return FALSE;
        // 获取tid
        $tid=$_POST['tid'];
        // 拉取数据
        $attrData=Db::table('type_attr')->where('type_tid',$tid)->get();
        // 重组数组
        foreach ($attrData as $k => $v) {
            $attrData[$k]['tavalue']=explode('|',$v['tavalue']);
        }
        // 返回数据
        View::ajax($attrData);
    }

    // 上传方法
    public function upload(){
        $file = Upload::path('Upload/img/' . date('ymd'))->make();
        if (empty($file)) {
            $this->ajax(Upload::getError());
            } else {
            //上传成功，把上传好的信息返给js
            $data = $file[0];
            echo json_encode($data);exit;
        }
    }

}
